The present invention relates to distributed, component based applications. More specifically, a technique for enabling entities of distributed, component based applications to manipulate an application's topology at runtime.
Today, some distributed programming systems expect an application developer to specify an application topology. For example, the Message Passing Interface (MPI) expects the application topology to be completely specified. Similarly stream-processing languages expect an application's connections to either be specified by name or by property. In addition, connections among the components of the application are determined by the application developer within SPL. In most of these systems, compilation of the application associates transports between components. This association prevents entities such as end-users, administrators, application-specific coordinators and middleware that manage these applications from manipulating the topology at application runtime.
Manipulating an application's topology at application runtime is useful for many reasons such as inserting probes at various points of the application to study performance, associating optimal transports depending on the traffic characteristics and inserting traffic shaping operators such as splitters and mergers.
As a result, a method for dynamically manipulating a distributed, component-based application's topology and underlying transports at runtime is needed.